package cn.cuilan.common.utils;

/**
 * 字节数组工具类
 *
 * @author zhang.yan
 */
public class ByteUtils {

    /**
     * int类型转byte数组
     *
     * @param value int整型
     * @return byte数组
     */
    public static byte[] intToBytes(int value) {
        byte[] src = new byte[4];
        src[0] = (byte) ((value >> 24) & 0xFF);
        src[1] = (byte) ((value >> 16) & 0xFF);
        src[2] = (byte) ((value >> 8) & 0xFF);
        src[3] = (byte) (value & 0xFF);
        return src;
    }

    /**
     * byte数组转int整型
     *
     * @param src byte数组
     * @return 返回整型数字
     */
    public static int bytesToInt(byte[] src) {
        return bytesToInt(src, 0);
    }

    /**
     * byte数组转int整型
     *
     * @param src    byte数组
     * @param offset 从数组第几位开始
     * @return 返回整型数字
     */
    public static int bytesToInt(byte[] src, int offset) {
        return (src[offset] & 0xFF) << 24
                | ((src[offset + 1] & 0xFF) << 16)
                | ((src[offset + 2] & 0xFF) << 8)
                | (src[offset + 3] & 0xFF);
    }
}
